This repository has been archived by the owner on Oct 24, 2021. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^6.0.0
->^8.0.0
Release Notes
tj/commander.js
v8.2.0
Compare Source
Added
.showSuggestionAfterError()
to show suggestions after unknown command or unknown option ([#1590])Option
support for values from environment variables using.env()
([#1587])Changed
Removed
Option
methodargumentRejected
v8.1.0
Compare Source
Added
.copyInheritedSettings()
([#1557])Argument
methods for.argRequired()
and.argOptional()
([#1567])v8.0.0
Compare Source
Added
.argument(name, description)
for adding command-arguments ([#1490]).createArgument()
factory method ([#1497]).addArgument()
([#1490])Argument
supports.choices()
([#1525]).showHelpAfterError()
to display full help or a custom message after an error ([#1534]).hook()
with support for'preAction'
and'postAction'
callbacks ([#1514]).opts()
return type using TypeScript generics ([#1539]).getOptionValue()
and.setOptionValue()
([#1521])Changed
.parseAsync()
is now declared asasync
([#1513])Help
method.visibleArguments()
returns array ofArgument
([#1490])CommanderError
codecommander.invalidOptionArgument
renamedcommander.invalidArgument
([#1508]).addTextHelp()
callback no longer allows result ofundefined
, now juststring
([#1516])index.tab
into a file per class ([#1522]).showHelpAfteError()
) ([#1534])Command
property.arg
initialised to empty array (was previously undefined) ([#1529])Deprecated
cmd.description(desc, argDescriptions)
for adding argument descriptions ([#1490]).argument(name, description)
instead)InvalidOptionArgumentError
(replaced byInvalidArgumentError
) ([#1508])Removed
Command
object ([#1520])program
export)Migration Tips
If you have a simple program without an action handler, you will now get an error if
there are missing command-arguments.
$ node trivial.js error: missing required argument 'file'
If you want to show the help in this situation, you could check the arguments before parsing:
Or, you might choose to show the help after any user error:
v7.2.0
Compare Source
Added
parent
property onCommand
([#1475]).attributeName()
onOption
([#1483])Changed
v7.1.0
Compare Source
Added
.cjs
to list of expected script file extensions ([#1449])Fixed
process.mainModule
([#1448])command('*')
and call when command line includes options ([#1464])on('command:*', ...)
and call when command line includes unknown options ([#1464])Changed
v7.0.0
Compare Source
Added
.enablePositionalOptions()
to let program and subcommand reuse same option ([#1427]).passThroughOptions()
to pass options through to other programs without needing--
([#1427]).allowExcessArguments(false)
to show an error message if there are too many command-arguments on command line for the action handler ([#1409]).configureOutput()
to modify use of stdout and stderr or customise display of errors ([#1387]).addHelpText()
to add text before or after the built-in help, for just current command or also for all subcommands ([#1296]).createOption()
to support subclassing of automatically created options (like.createCommand()
) ([#1380])Changed
program.opts()
.storeOptionsAsProperties()
.help()
and.outputHelp()
(removed from README) ([#1296])process.stderr.write()
instead ofconsole.error()
.on('--help')
(removed from README) ([#1296])Fixed
Deleted
.passCommandToAction()
([#1409]).allowExcessArguments(false)
Migration Tips
The biggest change is the parsed option values. Previously the options were stored by default as properties on the command object, and now the options are stored separately.
If you wish to restore the old behaviour and get running quickly you can call
.storeOptionsAsProperties()
.To allow you to move to the new code patterns incrementally, the action handler will be passed the command twice,
to match the new "options" and "command" parameters (see below).
program options
Use the
.opts()
method to access the options. This is available on any command but is used most with the program.action handler
The action handler gets passed a parameter for each command-argument you declared. Previously by default the next parameter was the command object with the options as properties. Now the next two parameters are instead the options and the command. If you
only accessed the options there may be no code changes required.
If you already set
.storeOptionsAsProperties(false)
you may still need to adjust your code.Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.